;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ѲԳɹű
;Ϊֵ
;ֱն˻%termNoն%termxhʱ%transTime,
%termNo = 413100000001
%transTime=20170802092000
;׽
%tradMoney = 0000 1100
;ȦԿID
%keyid = 01

;ǮȦԿ  ùԿݽűļ
%basedlk = 00000000000000000000000000000000
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;лû
@reset()
00A404000E325041592E5359532E4444463031
;;жϷǷɹ
;׳ʼסȡ֤롣01-07	ֻһtacԿʾΪ0	
;ѡDF02,رɹ
00A4 040008 A000000632010105
;зɢӣʶ
00B0950008
%earcsn=%resp
%earDLK_DF02 = @subkey(%basedlk,%earcsn)
;;;;;;;;;;;ȡ
00B0950C08
%csn =  %resp
%DLK_DF02 = @subkey(%earDLK_DF02,%csn)

;
805C 0002 04

;ǮȦ
80500002 0B %keyid %tradMoney %termNo
%oldbal = @strmidh(%resp,0,4)
%cardTransNo = @strmidh(%resp,4,2)
%keyver = @strmidh(%resp,6,1)
%desid  = @strmidh(%resp,7,1)
%lrand  = @strmidh(%resp,8,4)
%mac1   = @strmidh(%resp,12,4)

;ʹȦԿɹԿDLKα||EP||8000ܵõԿ
%sesloaddata = %lrand %cardTransNo 8000
%seslk = @des(%DLK_DF02,%sesloaddata,0)
%rand=0000000000000000

;MAC1ʹùԿEP(ǰ)4ֽ||׽4ֽ||1ֽ||ն˻6ֽ
%mac1data=%oldbal %tradMoney 02 %termNo 80
%eploadmac1=@mac(%seslk,%mac1data,%rand,1)

;ȽϼMAC1ȦʼصMAC1Ƿһ
@compare(%eploadmac1 , %mac1,1)

;MAC2ʹùԿԽ׽4ֽ||1ֽ||ն˻6ֽ||4ֽ||ʱ3ֽ
%jmeploaddata=%tradMoney 02 %termNo %transTime 800000000000
%eploadmac2=@mac(%seslk,%jmeploaddata,%rand,1)

805200000B %transTime %eploadmac2
%tac = %resp

;
80 5C 00 02 04

